home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / etc / hotplug / net.agent < prev    next >
Text File  |  2006-05-01  |  3KB  |  113 lines

  1. #!/bin/sh
  2. #
  3. # Network hotplug policy agent for Linux 2.4 kernels
  4. #
  5. # Kernel NET hotplug params include:
  6. #    
  7. #    ACTION=%s [register or unregister]
  8. #    INTERFACE=%s
  9. #
  10. # HISTORY:
  11. #
  12. # 25-Feb-2001    Special case ppp and similar (redhat)
  13. # 23-Jan-2001    Log invocation of "ifup" if debugging
  14. # 04-Jan-2001    Initial version of "new" hotplug agent.
  15. #
  16. # $Id: net.agent,v 1.22 2004/09/20 23:02:34 kroah Exp $
  17. #
  18.  
  19. cd /etc/hotplug
  20. . ./hotplug.functions
  21. # DEBUG=yes export DEBUG
  22.  
  23. if [ "$INTERFACE" = "" ]; then
  24.     mesg Bad NET invocation: \$INTERFACE is not set
  25.     exit 1
  26. fi
  27.  
  28. case $ACTION in
  29. add|register)
  30.     # Red Hat specific hack...
  31.     if [ -f /etc/redhat-release ]; then
  32.     # Don't do anything if the network is stopped
  33.     if [ ! -f /var/lock/subsys/network ]; then
  34.         exit 0
  35.     fi
  36.     fi
  37.  
  38.     case $INTERFACE in
  39.     # interfaces that are registered after being "up" (?)
  40.     ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
  41.         debug_mesg assuming $INTERFACE is already up
  42.         exit 0
  43.         ;;
  44.     # interfaces that are registered then brought up
  45.     *)
  46.         # NOTE:  network configuration relies on administered state,
  47.         # we can't do much here without distro-specific knowledge
  48.         # such as whether/how to invoke DHCP, set up bridging, etc.
  49.  
  50.         # Run ifrename as needed - Jean II
  51.         # Remap interface names based on MAC address. This workaround
  52.         # the dreaded configuration problem "all my cards are 'eth0'"...
  53.         # This needs to be done before ifup otherwise ifup will get
  54.         # confused by the name changed and because iface need to be
  55.         # down to change its name.
  56.         if [ -x /sbin/ifrename ] && [ -r /etc/iftab ]; then
  57.         debug_mesg invoke ifrename for $INTERFACE
  58.         NEWNAME=`/sbin/ifrename -i $INTERFACE`
  59.         if [ -n "$NEWNAME" ]; then
  60.             debug_mesg iface $INTERFACE is remapped to $NEWNAME
  61.             INTERFACE=$NEWNAME
  62.         fi;
  63.         fi
  64.  
  65.         # RedHat and similar
  66.         export IN_HOTPLUG=1
  67.         if [ -x /sbin/ifup ]; then
  68.         debug_mesg invoke ifup $INTERFACE
  69.         exec /sbin/ifup $INTERFACE
  70.  
  71.         # Gentoo
  72.         elif [ -f /etc/gentoo-release ]; then
  73.         script=/etc/init.d/net.$INTERFACE
  74.         if [ -x "$script" ]; then
  75.             debug_mesg invoke \"$script\" --quiet start
  76.             exec "$script" --quiet start
  77.         fi
  78.         else
  79.         mesg "how do I bring interfaces up on this distro?"
  80.         fi
  81.         ;;
  82.     esac
  83.     mesg $1 $ACTION event not handled
  84.     ;;
  85.  
  86. remove|unregister)
  87.     case $INTERFACE in
  88.     # interfaces that are unregistered after being "down" (?)
  89.     ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
  90.         debug_mesg assuming $INTERFACE is already down
  91.         exit 0
  92.         ;;
  93.     *)
  94.         # right now it looks like only Gentoo wants to care about
  95.         # unregistering network devices...
  96.         if [ -f /etc/gentoo-release ]; then
  97.             script=/etc/init.d/net.$INTERFACE
  98.         if [ -x "$script" ]; then
  99.             debug_mesg invoke "$script" --quiet stop
  100.             exec "$script" --quiet stop
  101.         fi
  102.         fi
  103.         ;;
  104.     esac
  105.     mesg $1 $ACTION event not handled
  106.     ;;
  107.  
  108. *)
  109.     debug_mesg NET $ACTION event for $INTERFACE not supported
  110.     exit 1 ;;
  111.  
  112. esac
  113.